home *** CD-ROM | disk | FTP | other *** search
/ Dictionaries & Language / Dictionaries and Language (Chestnut CD-ROM) (1993).iso / gloss / jargn298 / jargon-h.txt < prev    next >
Encoding:
Text File  |  1991-09-07  |  41.3 KB  |  771 lines

  1. = H =
  2. =====
  3.  
  4. h: [from SF fandom] infix. A method of `marking' common words,
  5.    i.e., calling attention to the fact that they are being used in a
  6.    nonstandard, ironic, or humorous way.  Originated in the fannish
  7.    catchphrase "Bheer is the One True Ghod!" from decades ago.
  8.    H-infix marking of `Ghod' and other words spread into the 1960s
  9.    counterculture via underground comix, and into early hackerdom
  10.    either from the counterculture or from SF fandom (the three overlapped
  11.    heavily at the time).  More recently, the h infix has become an
  12.    expected feature of benchmark names (Dhrystone, Rhealstone,
  13.    etc.); this is prob. patterning on the original Whetstone (the name
  14.    of a laboratory) but influenced by the fannish/counterculture
  15.    h infix.
  16.  
  17. ha ha only serious: [from SF fandom, orig. as mutation of HHOK,
  18.    `Ha Ha Only Kidding'] A phrase (often seen abbreviated as HHOS)
  19.    that aptly captures the flavor of much hacker discourse.  Applied
  20.    especially to parodies, absurdities, and ironic jokes that are both
  21.    intended and perceived to contain a possibly disquieting amount of
  22.    truth, or truths that are constructed on in-joke and self-parody.
  23.    This lexicon contains many examples of ha-ha-only-serious in both
  24.    form and content.  Indeed, the entirety of hacker culture is often
  25.    perceived as ha-ha-only-serious by hackers themselves; to take it
  26.    either too lightly or too seriously marks a person as an outsider,
  27.    a {wannabee}, or in {larval stage}.  For further
  28.    enlightenment on this subject, consult any Zen master.  See also
  29.    {{Humor, Hacker}}, and {AI koans}.
  30.  
  31. hack: 1. n. Originally, a quick job that produces what is needed,
  32.    but not well.  2. n. An incredibly good, and perhaps very
  33.    time-consuming, piece of work that produces exactly what is needed.
  34.    3. vt. To bear emotionally or physically.  "I can't hack this
  35.    heat!"  4. vt. To work on something (typically a program).  In an
  36.    immediate sense: "What are you doing?"  "I'm hacking TECO."
  37.    In a general (time-extended) sense: "What do you do around here?"
  38.    "I hack TECO."  More generally, "I hack `foo'" is roughly
  39.    equivalent to "`foo' is my major interest (or project)".  "I
  40.    hack solid-state physics."  5. vt. To pull a prank on.  See
  41.    sense 2 and {hacker} (sense 5).  6. vi. To interact with a
  42.    computer in a playful and exploratory rather than goal-directed
  43.    way.  "Whatcha up to?"  "Oh, just hacking."  7. n. Short for
  44.    {hacker}.  8. See {nethack}.
  45.  
  46.    Constructions on this term abound.  They include `happy
  47.    hacking' (a farewell), `how's hacking?' (a friendly greeting
  48.    among hackers) and `hack, hack' (a fairly content-free but
  49.    friendly comment, often used as a temporary farewell).  For more on
  50.    the meaning of hack see appendix A.  See also {neat hack},
  51.    {real hack}.
  52.  
  53. hack attack: [poss. by analogy with `Big Mac Attack' from ads
  54.    for the McDonald's fast-food chain; the variant `big hack attack'
  55.    is reported] n. Nearly synonymous with {hacking run}, though the
  56.    latter more strongly implies an all-nighter.
  57.  
  58. hack mode: n. 1. What one is in when hacking, of course.  2. More
  59.    specifically, a Zen-like state of total focus on The Problem that
  60.    may be achieved when one is hacking (this is why every good hacker
  61.    is part mystic).  Ability to enter such concentration at will
  62.    correlates strongly with wizardliness; it is one of the most
  63.    important skills learned during {larval stage}.  Sometimes
  64.    amplified as `deep hack mode'.
  65.  
  66.    Being yanked out of hack mode (see {priority interrupt}) may be
  67.    experienced as a physical shock, and the sensation of being in it
  68.    is more than a little habituating.  The intensity of this
  69.    experience is probably by itself sufficient explanation for the
  70.    existence of hackers, and explains why many resist being promoted
  71.    out of positions where they can code.  See also {cyberspace}
  72.    (sense 2).
  73.  
  74.    Some aspects of hackish etiquette will appear quite odd to an
  75.    observer unaware of the high value placed on hack mode.  For
  76.    example, if someone appears at your door, it is perfectly okay to
  77.    hold up a hand (without turning one's eyes away from the screen) to
  78.    avoid being interrupted.  One may read, type, and interact with the
  79.    computer for quite some time before further acknowledging the
  80.    other's presence (of course, he or she is reciprocally free to
  81.    leave without a word).  The understanding is that you might be in
  82.    {hack mode} with a lot of delicate {state} (sense 2) in your
  83.    head, and you dare not {swap} that context out until you have
  84.    reached a good point to pause. See also {juggling eggs}.
  85.  
  86. hack on: vt. To {hack}; implies that the subject is some
  87.    pre-existing hunk of code that one is evolving, as opposed to
  88.    something one might {hack up}.
  89.  
  90. hack together: vt. To throw something together so it will work.
  91.    Unlike `kluge together' or {cruft together}, this does not
  92.    necessarily have negative connotations.
  93.  
  94. hack up: vt. To {hack}, but generally implies that the result is
  95.    a hack in sense 1 (a quick hack).  Contrast this with {hack on}.
  96.    To `hack up on' implies a {quick-and-dirty} modification to an
  97.    existing system.  Contrast {hacked up}; compare {kluge up},
  98.    {monkey up}, {cruft together}.
  99.  
  100. hack value: n. Often adduced as the reason or motivation for
  101.    expending effort toward a seemingly useless goal, the point being
  102.    that the accomplished goal is a hack.  For example, MacLISP had
  103.    features for reading and printing Roman numerals, which were
  104.    installed purely for hack value.  See {display hack} for one
  105.    method of computing hack value, but this cannot really be
  106.    explained.  As a great artist once said of jazz: "If you hafta ask,
  107.    you ain't never goin' to find out."
  108.  
  109. hack-and-slay: v. (also `hack-and-slash') 1. To play a {MUD}
  110.    or go mudding, especially with the intention of {berserking} for
  111.    pleasure.  2. To undertake an all-night programming/hacking
  112.    session, interspersed with stints of mudding as a change of pace.
  113.    This term arose on the British academic network amongst students
  114.    who worked nights and logged onto Essex University's MUDs during
  115.    public-access hours (2 A.M. to 7 A.M.).  Usually more
  116.    mudding than work was done in these sessions.
  117.  
  118. hacked off: [analogous to `pissed off'] adj. Said of system
  119.    administrators who have become annoyed, upset, or touchy owing to
  120.    suspicions that their sites have been or are going to be victimized
  121.    by crackers, or used for inappropriate, technically illegal, or
  122.    even overtly criminal activities.  For example, having unreadable
  123.    files in your home directory called `worm', `lockpick', or `goroot'
  124.    would probably be an effective (as well as impressively obvious and
  125.    stupid) way to get your sysadmin hacked off at you.
  126.  
  127. hacked up: adj. Sufficiently patched, kluged, and tweaked that the
  128.    surgical scars are beginning to crowd out normal tissue (compare
  129.    {critical mass}).  Not all programs that are hacked become
  130.    `hacked up'; if modifications are done with some eye to coherence
  131.    and continued maintainability, the software may emerge better for
  132.    the experience.  Contrast {hack up}.
  133.  
  134. hacker: [originally, someone who makes furniture with an axe] n.
  135.    1. A person who enjoys exploring the details of programmable
  136.    systems and how to stretch their capabilities, as opposed to most
  137.    users, who prefer to learn only the minimum necessary.  2. One who
  138.    programs enthusiastically (even obsessively) or who enjoys
  139.    programming rather than just theorizing about programming.  3. A
  140.    person capable of appreciating {hack value}.  4. A person who is
  141.    good at programming quickly.  5. An expert at a particular program,
  142.    or one who frequently does work using it or on it; as in `a UNIX
  143.    hacker'.  (Definitions 1 through 5 are correlated, and people who fit
  144.    them congregate.)  6. An expert or enthusiast of any kind.  One
  145.    might be an astronomy hacker, for example.  7. One who enjoys the
  146.    intellectual challenge of creatively overcoming or circumventing
  147.    limitations.  8. [deprecated] A malicious meddler who tries to
  148.    discover sensitive information by poking around.  Hence `password
  149.    hacker', `network hacker'.  See {cracker}.
  150.  
  151.    It is better to be described as a hacker by others than to describe
  152.    oneself that way.  Hackers consider themselves something of an
  153.    elite (a meritocracy based on ability), though one to which new
  154.    members are gladly welcome.  There is thus a certain ego
  155.    satisfaction to be had in identifying yourself as a hacker (but if
  156.    you claim to be one and are not, you'll quickly be labeled
  157.    {bogus}).
  158.  
  159. hacking run: [analogy with `bombing run' or `speed run'] n. A
  160.    hack session extended long outside normal working times, especially
  161.    one longer than 12 hours.  May cause you to `change phase the hard
  162.    way' (see {phase}).
  163.  
  164. Hacking X for Y: [ITS] n. The information ITS made publicly
  165.    available about each user (the INQUIR record) was a sort of form in
  166.    which the user could fill out fields.  On display, two of these
  167.    fields were combined into a project description of the form
  168.    "Hacking X for Y" (e.g., `"Hacking perceptrons for
  169.    Minsky"').  This form of description became traditional and has
  170.    since been carried over to other systems with more general
  171.    facilities for self-advertisement (such as UNIX {plan file}s).
  172.  
  173. Hackintosh: n. 1. An Apple Lisa that has been hacked into emulating a
  174.    Macintosh (also called a `Mac XL').  2. A Macintosh assembled
  175.    from parts theoretically belonging to different models in the line.
  176.  
  177. hackish: /hak'ish/ adj. (also {hackishness} n.) 1. Said of
  178.    something that is or involves a hack.  2. Of or pertaining to
  179.    hackers or the hacker subculture.  See also {true-hacker}.
  180.  
  181. hackishness: n. The quality of being or involving a hack.  This
  182.    term is considered mildly silly.  Syn.  {hackitude}.
  183.  
  184. hackitude: n. Syn. {hackishness}; this word is considered sillier.
  185.  
  186. hair: [back-formation from {hairy}] n. The complications that
  187.    make something hairy.  "Decoding {TECO} commands requires a
  188.    certain amount of hair."  Often seen in the phrase `infinite
  189.    hair', which connotes extreme complexity.  Also in `hairiferous'
  190.    (tending to promote hair growth): "GNUMACS Elisp encourages lusers
  191.    to write complex editing modes."  "Yeah, it's pretty hairiferous
  192.    all right." (or just: "Hair squared!")
  193.  
  194. hairy: adj. 1. Annoyingly complicated.  "{DWIM} is incredibly
  195.    hairy."  2. Incomprehensible.  "{DWIM} is incredibly hairy."
  196.    3. Of people, high-powered, authoritative, rare, expert, and/or
  197.    incomprehensible.  Hard to explain except in context: "He knows
  198.    this hairy lawyer who says there's nothing to worry about."  See
  199.    also {hirsute}.
  200.  
  201. HAKMEM: /hak'mem/ n. MIT AI Memo 239 (February 1972).  A
  202.    legendary collection of neat mathematical and programming hacks
  203.    contributed by many people at MIT and elsewhere.  (The title of the
  204.    memo really is "HAKMEM", which is a 6-letterism for `hacks
  205.    memo'.)  Some of them are very useful techniques, powerful
  206.    theorems, or interesting unsolved problems, but most fall into the
  207.    category of mathematical and computer trivia.  Here is a sampling
  208.    of the entries (with authors), slightly paraphrased:
  209.  
  210.    Item 41 (Gene Salamin): There are exactly 23,000 prime numbers less
  211.    than 2^18.
  212.  
  213.    Item 46 (Rich Schroeppel): The most *probable* suit
  214.    distribution in bridge hands is 4-4-3-2, as compared to 4-3-3-3,
  215.    which is the most *evenly* distributed.  This is because the
  216.    world likes to have unequal numbers: a thermodynamic effect saying
  217.    things will not be in the state of lowest energy, but in the state
  218.    of lowest disordered energy.
  219.  
  220.    Item 81 (Rich Schroeppel): Count the magic squares of order 5
  221.    (that is, all the 5-by-5 arrangements of the numbers from 1 to 25
  222.    such that all rows, columns, and diagonals add up to the same
  223.    number).  There are about 320 million, not counting those that
  224.    differ only by rotation and reflection.
  225.  
  226.    Item 154 (Bill Gosper): The myth that any given programming language is
  227.    machine independent is easily exploded by computing the sum of
  228.    powers of 2.  If the result loops with period = 1 with
  229.    sign +, you are on a sign-magnitude machine.  If the result
  230.    loops with period = 1 at -1, you are on a
  231.    twos-complement machine.  If the result loops with period greater
  232.    than 1, including the beginning, you are on a ones-complement
  233.    machine.  If the result loops with period greater than 1, not
  234.    including the beginning, your machine isn't binary --- the pattern
  235.    should tell you the base.  If you run out of memory, you are on a
  236.    string or bignum system.  If arithmetic overflow is a fatal error,
  237.    some fascist pig with a read-only mind is trying to enforce machine
  238.    independence.  But the very ability to trap overflow is machine
  239.    dependent.  By this strategy, consider the universe, or, more
  240.    precisely, algebra: Let X = the sum of many powers of 2 =
  241.    ...111111.  Now add X to itself:
  242.    X + X = ...111110 Thus, 2X = X - 1, so
  243.    X = -1.  Therefore algebra is run on a machine (the
  244.    universe) that is two's-complement.
  245.  
  246.    Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the only
  247.    number such that if you represent it on the {PDP-10} as both an
  248.    integer and a floating-point number, the bit patterns of the two
  249.    representations are identical.
  250.  
  251.    Item 176 (Gosper): The "banana phenomenon" was encountered when
  252.    processing a character string by taking the last 3 letters typed
  253.    out, searching for a random occurrence of that sequence in the
  254.    text, taking the letter following that occurrence, typing it out,
  255.    and iterating.  This ensures that every 4-letter string output
  256.    occurs in the original.  The program typed BANANANANANANANA....  We
  257.    note an ambiguity in the phrase, "the Nth occurrence of."  In one
  258.    sense, there are five 00's in 0000000000; in another, there are
  259.    nine.  The editing program TECO finds five.  Thus it finds only the
  260.    first ANA in BANANA, and is thus obligated to type N next.  By
  261.    Murphy's Law, there is but one NAN, thus forcing A, and thus a
  262.    loop.  An option to find overlapped instances would be useful,
  263.    although it would require backing up N - 1 characters before
  264.    seeking the next N-character string.
  265.  
  266.    Note: This last item refers to a {Dissociated Press}
  267.    implementation.  See also {banana problem}.
  268.  
  269.    HAKMEM also contains some rather more complicated mathematical and
  270.    technical items, but these examples show some of its fun flavor.
  271.  
  272. hakspek: /hak'speek/ n. A shorthand method of spelling found on
  273.    many British academic bulletin boards and {talker system}s.
  274.    Syllables and whole words in a sentence are replaced by single
  275.    ASCII characters the names of which are phonetically similar or
  276.    equivalent, while multiple letters are usually dropped.  Hence,
  277.    `for' becomes `4'; `two', `too', and `to' become `2'; `ck'
  278.    becomes `k'.  "Before I see you tomorrow" becomes "b4 i c u
  279.    2moro".  First appeared in London about 1986, and was probably
  280.    caused by the slowness of available talker systems, which
  281.    operated on archaic machines with outdated operating systems and
  282.    no standard methods of communication.  Has become rarer since.
  283.    See also {talk mode}.
  284.  
  285. hamster: n. 1. [Fairchild] A particularly slick little piece of code
  286.    that does one thing well; a small, self-contained hack.  The image
  287.    is of a hamster happily spinning its exercise wheel.  2. [UK] Any item
  288.    of hardware made by Amstrad, a company famous for its cheap
  289.    plastic PC-almost-compatibles.
  290.  
  291. hand-hacking: n. 1. The practice of translating {hot spot}s from
  292.    an {HLL} into hand-tuned assembler, as opposed to trying to
  293.    coerce the compiler into generating better code.  Both the term and
  294.    the practice are becoming uncommon.  See {tune}, {bum}, {by
  295.    hand}; syn.  with v. {cruft}.  2. More generally, manual
  296.    construction or patching of data sets that would normally be
  297.    generated by a translation utility and interpreted by another
  298.    program, and aren't really designed to be read or modified by
  299.    humans.
  300.  
  301. handshaking: n. Hardware or software activity designed to start or
  302.    keep two machines or programs in synchronization as they {do
  303.    protocol}.  Often applied to human activity; thus, a hacker might
  304.    watch two people in conversation nodding their heads to indicate
  305.    that they have heard each others' points and say "Oh, they're
  306.    handshaking!".  See also {protocol}.
  307.  
  308. handwave: [poss. from gestures characteristic of stage magicians]
  309.    1. v. To gloss over a complex point; to distract a listener; to
  310.    support a (possibly actually valid) point with blatantly faulty
  311.    logic.  2. n. The act of handwaving.  "Boy, what a handwave!"
  312.  
  313.    If someone starts a sentence with "Clearly..." or
  314.    "Obviously..." or "It is self-evident that...", it is
  315.    a good bet he is about to handwave (alternatively, use of these
  316.    constructions in a sarcastic tone before a paraphrase of someone
  317.    else's argument suggests that it is a handwave).  The theory behind
  318.    this term is that if you wave your hands at the right moment, the
  319.    listener may be sufficiently distracted to not notice that what you
  320.    have said is {bogus}.  Failing that, if a listener does object,
  321.    you might try to dismiss the objection with a wave of your hand.
  322.  
  323.    The use of this word is often accompanied by gestures: both hands
  324.    up, palms forward, swinging the hands in a vertical plane pivoting
  325.    at the elbows and/or shoulders (depending on the magnitude of the
  326.    handwave); alternatively, holding the forearms in one position
  327.    while rotating the hands at the wrist to make them flutter.  In
  328.    context, the gestures alone can suffice as a remark; if a speaker
  329.    makes an outrageously unsupported assumption, you might simply wave
  330.    your hands in this way, as an accusation, far more eloquent than
  331.    words could express, that his logic is faulty.
  332.  
  333. hang: v. 1. To wait for an event that will never occur.  "The
  334.    system is hanging because it can't read from the crashed drive".
  335.    See {wedged}, {hung}.  2. To wait for some event to occur; to
  336.    hang around until something happens.  "The program displays a menu
  337.    and then hangs until you type a character."  Compare {block}.
  338.    3. To attach a peripheral device, esp. in the construction `hang
  339.    off':  "We're going to hang another tape drive off the file
  340.    server."  Implies a device attached with cables, rather than
  341.    something that is strictly inside the machine's chassis.
  342.  
  343. Hanlon's Razor: prov. A corollary of {Finagle's Law}, similar to
  344.    Occam's Razor, that reads "Never attribute to malice that which can
  345.    be adequately explained by stupidity."  The derivation of the
  346.    common title Hanlon's Razor is unknown; a similar epigram has been
  347.    attributed to William James.  Quoted here because it seems to be a
  348.    particular favorite of hackers, often showing up in {fortune
  349.    cookie} files and the login banners of BBS systems and commercial
  350.    networks.  This probably reflects the hacker's daily experience of
  351.    environments created by well-intentioned but short-sighted people.
  352.  
  353. happily: adv.  Of software, used to emphasize that a program is
  354.    unaware of some important fact about its environment, either
  355.    because it has been fooled into believing a lie, or because it
  356.    doesn't care.  The sense of `happy' here is not that of elation,
  357.    but rather that of blissful ignorance.  "The program continues to
  358.    run, happily unaware that its output is going to /dev/null."
  359.  
  360. hard boot: n. See {boot}.
  361.  
  362. hardcoded: adj. 1. Said of data inserted directly into a program,
  363.    where it cannot be easily modified, as opposed to data in some
  364.    {profile}, resource (see {de-rezz} sense 2), or environment
  365.    variable that a {user} or hacker can easily modify.  2. In C,
  366.    this is esp. applied to use of a literal instead of a
  367.    `#define' macro (see {magic number}).
  368.  
  369. hardwarily: /hard-weir'*-lee/ adv. In a way pertaining to
  370.    hardware.  "The system is hardwarily unreliable."  The adjective
  371.    `hardwary' is *not* traditionally used, though it has recently
  372.    been reported from the U.K.  See {softwarily}.
  373.  
  374. hardwired: adj. 1. In software, syn. for {hardcoded}.  2. By
  375.    extension, anything that is not modifiable, especially in the sense
  376.    of customizable to one's particular needs or tastes.
  377.  
  378. has the X nature: [seems to derive from Zen Buddhist koans of the
  379.    form "Does an X have the Buddha-nature?"] adj. Common hacker
  380.    construction for `is an X', used for humorous emphasis.  "Anyone
  381.    who can't even use a program with on-screen help embedded in it
  382.    truly has the {loser} nature!"  See also {the X that can be Y
  383.    is not the true X}.
  384.  
  385. hash bucket: n. A notional receptacle into which more than one
  386.    thing accessed by the same key or short code might be dropped.
  387.    When you look up a name in the phone book (for example), you
  388.    typically hash it by extracting its first letter; the hash buckets
  389.    are the alphabetically ordered letter sections.  This is used as
  390.    techspeak with respect to code that uses actual hash functions; in
  391.    jargon, it is used for human associative memory as well.  Thus, two
  392.    things `in the same hash bucket' may be confused with each other.
  393.    "If you hash English words only by length, you get too many common
  394.    grammar words in the first couple of hash buckets." Compare {hash
  395.    collision}.
  396.  
  397. hash collision: [from the technical usage] n. (var. `hash
  398.    clash') When used of people, signifies a confusion in associative
  399.    memory or imagination, especially a persistent one (see
  400.    {thinko}).  True story: One of us [ESR] was once on the phone
  401.    with a friend about to move out to Berkeley.  When asked what he
  402.    expected Berkeley to be like, the friend replied: "Well, I have
  403.    this mental picture of naked women throwing Molotov cocktails, but
  404.    I think that's just a collision in my hash tables."  Compare
  405.    {hash bucket}.
  406.  
  407. hat: n. Common (spoken) name for the circumflex (`^', ASCII
  408.    1011110) character.  See {ASCII} for other synonyms.
  409.  
  410. HCF: /H-C-F/ n. Mnemonic for `Halt and Catch Fire', any of
  411.    several undocumented and semi-mythical machine instructions with
  412.    destructive side-effects, supposedly included for test purposes on
  413.    several well-known architectures going as far back as the IBM 360.
  414.    The MC6800 microprocessor was the first for which the HCF opcode
  415.    became widely known.  This instruction caused the processor to
  416.    {toggle} a subset of the bus lines as rapidly as it could; in
  417.    some configurations this can actually cause lines to burn
  418.    up.
  419.  
  420. heads down: [Sun] adj. Concentrating, usually so heavily and for so
  421.    long that everything outside the focus area is missed.  See also
  422.    {hack mode} and {larval stage}, although it is not confined to
  423.    fledgling hackers.
  424.  
  425. heartbeat: n. 1. The signal emitted by a Level 2 Ethernet
  426.    transceiver at the end of every packet to show that the
  427.    collision-detection circuit is still connected.  2. A periodic
  428.    synchronization signal used by software or hardware, such as a bus
  429.    clock or a periodic interrupt.  3. The `natural' oscillation
  430.    frequency of a computer's clock crystal, before frequency division
  431.    down to the machine's clock rate.  4. A signal emitted at regular
  432.    intervals by software to demonstrate that it is still alive.
  433.    Sometimes hardware is designed to reboot the machine if it stops
  434.    hearing a heartbeat.  See also {breath-of-life packet}.
  435.  
  436. heavy metal: [Cambridge] n. Syn. {big iron}.
  437.  
  438. heavy wizardry: n. Code or designs that trade on a particularly
  439.    intimate knowledge or experience of a particular operating system
  440.    or language or complex application interface.  Distinguished from
  441.    {deep magic}, which trades more on arcane *theoretical*
  442.    knowledge.  Writing device drivers is heavy wizardry; so is
  443.    interfacing to {X} (sense 2) without a toolkit.  Esp. found in
  444.    comments similar to "Heavy wizardry begins here ...".  Compare
  445.    {voodoo programming}.
  446.  
  447. heavyweight: adj. High-overhead; {baroque}; code-intensive;
  448.    featureful, but costly.  Esp. used of communication protocols,
  449.    language designs, and any sort of implementation in which maximum
  450.    generality and/or ease of implementation has been pushed at the
  451.    expense of mundane considerations such as speed, memory utilization,
  452.    and startup time.  {EMACS} is a heavyweight editor; {X} is an
  453.    *extremely* heavyweight window system.  This term isn't
  454.    pejorative, but one man's heavyweight is another's {elephantine}
  455.    and a third's {monstrosity}.  Oppose `lightweight'.
  456.  
  457. heisenbug: /hi:'zen-buhg/ [from Heisenberg's Uncertainty
  458.    Principle in quantum physics] n. A bug that disappears or alters
  459.    its behavior when one attempts to probe or isolate it.  Antonym of
  460.    {Bohr bug}; see also {mandelbug}.  In C, nine out of ten heisenbugs
  461.    result from either {fandango on core} phenomena (esp. lossage
  462.    related to corruption of the malloc {arena}) or errors that
  463.    {smash the stack}.
  464.  
  465. Helen Keller mode: n. State of a hardware or software system that
  466.    is deaf, dumb, and blind, i.e., accepting no input and generating no
  467.    output, usually due to an infinite loop or some other excursion
  468.    into {deep space}.  (Unfair to the real Helen Keller, whose
  469.    success at learning speech was triumphant.)  See also
  470.    {go flatline}, {catatonic}.
  471.  
  472. hello, sailor!: interj. Occasional West Coast equivalent of
  473.    {hello, world}; seems to have originated at SAIL, later
  474.    associated with the game {Zork} (which also included "hello,
  475.    aviator" and "hello, implementor").  Originally from the
  476.    traditional hooker's greeting to a swabbie fresh off the boat, of
  477.    course.
  478.  
  479. hello, wall!: excl. See {wall}.
  480.  
  481. hello, world: interj. 1. The canonical minimal test message in the
  482.    C/UNIX universe.  2. Any of the minimal programs that emit this
  483.    message.  Traditionally, the first program a C coder is supposed to
  484.    write in a new environment is one that just prints "hello, world"
  485.    to standard output (and indeed it is the first example program
  486.    in {K&R}).  Environments that generate an unreasonably large
  487.    executable for this trivial test or which require a {hairy}
  488.    compiler-linker invocation to generate it are considered to
  489.    {lose} (see {X}).  3. Greeting uttered by a hacker making an
  490.    entrance or requesting information from anyone present.  "Hello,
  491.    world!  Is the {VAX} back up yet?"
  492.  
  493. hex: n. 1. Short for {{hexadecimal}}, base 16.  2. A 6-pack
  494.    of anything (compare {quad}, sense 2).  Neither usage has
  495.    anything to do with {magic} or {black art}, though the pun is
  496.    appreciated and occasionally used by hackers.  True story: As a
  497.    joke, some hackers once offered some surplus ICs for sale to be
  498.    worn as protective amulets against hostile magic.  The chips were,
  499.    of course, hex inverters.
  500.  
  501. hexadecimal:: n. Base 16.  Coined in the early 1960s to replace
  502.    earlier `sexadecimal', which was too racy and amusing for stuffy
  503.    IBM, and later adopted by the rest of the industry.
  504.  
  505.    Actually, neither term is etymologically pure.  If we take `binary'
  506.    to be paradigmatic, the most etymologically correct term for
  507.    base 10, for example, is `denary', which
  508.    comes from `deni' (ten at a time, ten each), a Latin `distributive'
  509.    number; the corresponding term for base-16 would be something like
  510.    `sendenary'.  `Decimal' is from an ordinal number; the
  511.    corresponding prefix for 6 would imply something like
  512.    `sextidecimal'.  The `sexa-' prefix is Latin but incorrect in this
  513.    context, and `hexa-' is Greek.  The word `octal' is similarly
  514.    incorrect; a correct form would be `octaval' (to go with decimal),
  515.    or `octonary' (to go with binary).  If anyone ever implements a
  516.    base-3 computer, computer scientists will be faced with the
  517.    unprecedented dilemma of a choice between two *correct* forms;
  518.    both `ternary' and `trinary' have a claim to this throne.
  519.  
  520. hexit: /hek'sit/ n. A hexadecimal digit (0--9, and A--F or a--f).
  521.    Used by people who claim that there are only *ten* digits,
  522.    dammit; sixteen-fingered human beings are rather rare, despite what
  523.    some keyboard designs might seem to imply (see {space-cadet
  524.    keyboard}).
  525.  
  526. hidden flag: [scientific computation] n. An extra option added to a
  527.    routine without changing the calling sequence.  For example,
  528.    instead of adding an explicit input variable to instruct a routine
  529.    to give extra diagnostic output, the programmer might just add a
  530.    test for some otherwise meaningless feature of the existing inputs,
  531.    such as a negative mass.  Liberal use of hidden flags can make a
  532.    program very hard to debug and understand.
  533.  
  534. high bit: [from `high-order bit'] n. 1. The most significant
  535.    bit in a byte.  2. By extension, the most significant part of
  536.    something other than a data byte: "Spare me the whole {saga},
  537.    just give me the high bit."  See also {meta bit}, {hobbit},
  538.    {dread high-bit disease}, and compare the mainstream slang
  539.    `bottom line'.
  540.  
  541. high moby: /hi:' mohb'ee/ n. The high half of a 512K {PDP-10}'s
  542.    physical address space; the other half was of course the low moby.  This
  543.    usage has been generalized in a way that has outlasted the
  544.    {PDP-10}; for example, at the 1990 Washington D.C. Area Science
  545.    Fiction Conclave (Disclave), when a miscommunication resulted in two
  546.    separate wakes being held in commemoration of the shutdown of MIT's
  547.    last {{ITS}} machines, the one on the upper floor was dubbed the
  548.    `high moby' and the other the `low moby'.  All parties involved
  549.    {grok}ked this instantly.  See {moby}.
  550.  
  551. highly: [scientific computation] adv. The preferred modifier for
  552.    overstating an understatement.  As in: `highly nonoptimal', the
  553.    worst possible way to do something; `highly nontrivial', either
  554.    impossible or requiring a major research project; `highly
  555.    nonlinear', completely erratic and unpredictable; `highly
  556.    nontechnical', drivel written for {luser}s, oversimplified to the
  557.    point of being misleading or incorrect (compare {drool-proof
  558.    paper}).  In other computing cultures, postfixing of {in the
  559.    extreme} might be preferred.
  560.  
  561. hirsute: adj. Occasionally used humorously as a synonym for {hairy}.
  562.  
  563. HLL: /H-L-L/ n. [High-Level Language (as opposed to assembler)]
  564.    Found primarily in email and news rather than speech.  Rarely, the
  565.    variants `VHLL' and `MLL' are found.  VHLL stands for `Very-High-Level
  566.    Language' and is used to describe a {bondage-and-discipline
  567.    language} that the speaker happens to like; Prolog and Backus's FP
  568.    are often called VHLLs.  `MLL' stands for `Medium-Level Language' and is
  569.    sometimes used half-jokingly to describe {C}, alluding to its
  570.    `structured-assembler' image.  See also {languages of choice}.
  571.  
  572. hobbit: n. 1. The High Order Bit of a byte; same as the {meta
  573.    bit} or {high bit}.  2. The non-ITS name of vad@ai.mit.edu
  574.    (*Hobbit*), master of lasers.
  575.  
  576. hog: n.,vt. 1. Favored term to describe programs or hardware that
  577.    seem to eat far more than their share of a system's resources,
  578.    esp. those which noticeably degrade interactive response.
  579.    *Not* used of programs that are simply extremely large or
  580.    complex or that are merely painfully slow themselves (see {pig,
  581.    run like a}).  More often than not encountered in qualified forms,
  582.    e.g., `memory hog', `core hog', `hog the processor', `hog
  583.    the disk'.  "A controller that never gives up the I/O bus
  584.    gets killed after the bus-hog timer expires."   2. Also said
  585.    of *people* who use more than their fair share of resources
  586.    (particularly disk, where it seems that 10% of the people use 90%
  587.    of the disk, no matter how big the disk is or how many people use
  588.    it).  Of course, once disk hogs fill up one filesystem, they
  589.    typically find some other new one to infect, claiming to the
  590.    sysadmin that they have an important new project to complete.
  591.  
  592. holy wars: [from {USENET}, but may predate it] n. {flame
  593.    war}s over {religious issues}.  The paper by Danny Cohen that
  594.    popularized the terms {big-endian} and {little-endian} in
  595.    connection with the LSB-first/MSB-first controversy was entitled
  596.    "On Holy Wars and a Plea for Peace".  Other perennial Holy
  597.    Wars have included {EMACS} vs. {vi}, my personal computer vs.
  598.    everyone else's personal computer, {{ITS}} vs. {{UNIX}},
  599.    {{UNIX}} vs. {VMS}, {BSD} UNIX vs. {USG UNIX}, {C} vs.
  600.    {{Pascal}}, {C} vs. {LISP}, etc., ad nauseam.  The
  601.    characteristic that distinguishes {holy wars} from normal
  602.    technical disputes is that in a holy wars most of the participants
  603.    spend their time trying to pass off personal value choices and
  604.    cultural attachments as objective technical evaluations. See also
  605.    {theology}.
  606.  
  607. home box: n. A hacker's personal machine, especially one he or she
  608.    owns.  "Yeah?  Well, *my* home box runs a full 4.2 BSD, so
  609.    there!"
  610.  
  611. hook: n. A software or hardware feature included in order to
  612.    simplify later additions or changes by a user.  For example,
  613.    a simple program that prints numbers might always print them in
  614.    base 10, but a more flexible version would let a variable
  615.    determine what base to use; setting the variable to 5 would make
  616.    the program print numbers in base 5.  The variable is a simple
  617.    hook.  An even more flexible program might examine the variable
  618.    and treat a value of 16 or less as the base to use, but treat any
  619.    other number as the address of a user-supplied routine for printing
  620.    a number.  This is a {hairy} but powerful hook; one can then write a
  621.    routine to print numbers as Roman numerals, say, or as Hebrew
  622.    characters, and plug it into the program through the hook.  Often
  623.    the difference between a good program and a superb one is that the
  624.    latter has useful hooks in judiciously chosen places.  Both may do
  625.    the original job about equally well, but the one with the hooks is
  626.    much more flexible for future expansion of capabilities ({EMACS},
  627.    for example, is *all* hooks).  The term `user exit' is
  628.    synonymous but much more formal and less hackish.
  629.  
  630. hop: n. One file transmission in a series required to get a file
  631.    from point A to point B on a store-and-forward network.  On such
  632.    networks (including {UUCPNET} and {FidoNet}), the important
  633.    inter-machine metric is the number of hops in the shortest path
  634.    between them, rather than their geographical separation.  See
  635.    {bang path}.
  636.  
  637. hose: 1. vt. To make non-functional or greatly degraded in
  638.    performance.  "That big ray-tracing program really hoses the
  639.    system."  See {hosed}.  2. n. A narrow channel through which
  640.    data flows under pressure.  Generally denotes data paths that
  641.    represent performance bottlenecks.  3. n. Cabling, especially
  642.    thick Ethernet cable.  This is sometimes called `bit hose' or
  643.    `hosery' (play on `hosiery') or `etherhose'.  See also
  644.    {washing machine}.
  645.  
  646. hosed: adj. Same as {down}.  Used primarily by UNIX hackers.
  647.    Humorous: also implies a condition thought to be relatively easy to
  648.    reverse.  Probably derived from the Canadian slang `hoser'
  649.    popularized by the Bob and Doug Mackenzie skits on SCTV.  See
  650.    {hose}.  It is also widely used of people in the mainstream sense
  651.    of `in an extremely unfortunate situation'.
  652.  
  653.    Once upon a time, a Cray that had been experiencing periodic
  654.    difficulties crashed, and it was announced to have been hosed.
  655.    It was discovered that the crash was due to the disconnection of
  656.    some coolant hoses.  The problem was corrected, and users were then
  657.    assured that everything was OK because the system had been rehosed.
  658.    See also {dehose}.
  659.  
  660. hot spot: n. 1. [primarily used by C/UNIX programmers, but
  661.    spreading] It is received wisdom that in most programs, less than
  662.    10% of the code eats 90% of the execution time; if one were to
  663.    graph instruction visits versus code addresses, one would typically
  664.    see a few huge spikes amidst a lot of low-level noise.  Such spikes
  665.    are called `hot spots' and are good candidates for heavy
  666.    optimization or {hand-hacking}.  The term is especially used of
  667.    tight loops and recursions in the code's central algorithm, as
  668.    opposed to (say) initial set-up costs or large but infrequent I/O
  669.    operations.  See {tune}, {bum}, {hand-hacking}.  2. The
  670.    active location of a cursor on a bit-map display.  "Put the
  671.    mouse's hot spot on the `ON' widget and click the left button."
  672.    3. In a massively parallel computer with shared memory, the one
  673.    location that all 10,000 processors are trying to read or
  674.    write at once (perhaps because they are all doing a {busy-wait}
  675.    on the same lock).
  676.  
  677. house wizard: [prob. from ad-agency lingo, `house freak'] n. A
  678.    hacker occupying a technical-specialist, R&D, or systems position
  679.    at a commercial shop.  A really effective house wizard can have
  680.    influence out of all proportion to his/her ostensible rank and
  681.    still not have to wear a suit.  Used esp. of UNIX wizards.  The
  682.    term `house guru' is equivalent.
  683.  
  684. HP-SUX: /H-P suhks/ n. Unflattering hackerism for HP-UX,
  685.    Hewlett-Packard's UNIX port.  Features some truly unique bogosities
  686.    in the filesystem internals and elsewhere which occasionally create
  687.    portability problems.  HP-UX is often referred to as `hockey-pux'
  688.    inside HP, and one respondent claims that the proper pronunciation
  689.    is /H-P ukkkhhhh/ as though one were about to spit.  Another such
  690.    alternate spelling and pronunciation is "H-PUX" /H-puhks/.
  691.    Hackers at HP/Apollo (the former Apollo Computers which was swallowed
  692.    by HP in 1989) have been heard to complain that Mr. Packard should
  693.    have pushed to have his name first, if for no other reason than the
  694.    greater eloquence of the resulting acronym.  Compare {buglix}.
  695.    See also {Telerat}, {sun-stools}, {terminak}.
  696.  
  697. huff: v. To compress data using a Huffman code.  Various programs
  698.    that use such methods have been called `HUFF' or some variant
  699.    thereof.  Oppose {puff}.  Compare {crunch}, {compress}.
  700.  
  701. humma: // excl. A filler word used on various `chat' and
  702.    `talk' programs when you had nothing to say but felt that it was
  703.    important to say something.  The word apparently originated (at
  704.    least with this definition) on the MECC Timeshare System (MTS, a
  705.    now-defunct educational time-sharing system running in Minnesota
  706.    during the 1970s and the early 1980s) but was later sighted on
  707.    early UNIX systems.
  708.  
  709. Humor, Hacker:: n. A distinctive style of shared intellectual humor
  710.    found among hackers, having the following distinctive
  711.    characteristics:
  712.  
  713.    1. Fascination with form-vs.-content jokes, paradoxes, and humor
  714.    having to do with confusion of metalevels (see {meta}).  One way
  715.    to make a hacker laugh: hold a red index card in front of him/her
  716.    with "GREEN" written on it, or vice-versa (note, however, that
  717.    this is funny only the first time).
  718.  
  719.    2. Elaborate deadpan parodies of large intellectual constructs, such
  720.    as specifications (see {write-only memory}), standards documents,
  721.    language descriptions (see {INTERCAL}), and even entire scientific
  722.    theories (see {quantum bogodynamics}, {computron}).
  723.  
  724.    3. Jokes that involve screwily precise reasoning from bizarre,
  725.    ludicrous, or just grossly counter-intuitive premises.
  726.  
  727.    4. Fascination with puns and wordplay.
  728.  
  729.    5. A fondness for apparently mindless humor with subversive
  730.    currents of intelligence in it --- for example, old Warner Brothers
  731.    and Rocky & Bullwinkle cartoons, the Marx brothers, the early
  732.    B-52s, and Monty Python's Flying Circus.  Humor that combines this
  733.    trait with elements of high camp and slapstick is especially
  734.    favored.
  735.  
  736.    6. References to the symbol-object antinomies and associated ideas
  737.    in Zen Buddhism and (less often) Taoism.  See {has the X nature},
  738.    {Discordianism}, {zen}, {ha ha only serious}, {AI koans}.
  739.  
  740.    See also {filk}, {retrocomputing}, and appendix B.  If you have an
  741.    itchy feeling that all 6 of these traits are really aspects of
  742.    one thing that is incredibly difficult to talk about exactly, you
  743.    are (a) correct and (b) responding like a hacker.  These traits are
  744.    also recognizable (though in a less marked form) throughout
  745.    {{science-fiction fandom}}.
  746.  
  747. hung: [from `hung up'] adj. Equivalent to {wedged}, but more
  748.    common at UNIX/C sites.  Not generally used of people.  Syn. with
  749.    {locked up}, {wedged}; compare {hosed}.  See also {hang}.
  750.    A hung state is distinguished from {crash}ed or {down}, where the
  751.    program or system is also unusable but because it is not running
  752.    rather than because it is waiting for something.  However, the
  753.    recovery from both situations is often the same.
  754.  
  755. hungry puppy: n. Syn. {slopsucker}.
  756.  
  757. hungus: /huhng'g*s/ [perhaps related to slang `humongous'] adj.
  758.    Large, unwieldy, usually unmanageable.  "TCP is a hungus piece of
  759.    code."  "This is a hungus set of modifications."
  760.  
  761. hyperspace: /hi:'per-spays/ n. A memory location that is *far*
  762.    away from where the program counter should be pointing, often
  763.    inaccessible because it is not even mapped in.  "Another core
  764.    dump --- looks like the program jumped off to hyperspace
  765.    somehow."  (Compare {jump off into never-never land}.)  This
  766.    usage is from the SF notion of a spaceship jumping `into
  767.    hyperspace', that is, taking a shortcut through higher-dimensional
  768.    space --- in other words, bypassing this universe.  The variant
  769.    `east hyperspace' is recorded among CMU and Bliss hackers.
  770.  
  771.